এক্সেল ম্যাক্রো আপনাকে একাধিক Worksheet এবং Workbook এর সাথে কাজ করার সুযোগ দেয়, যার মাধ্যমে আপনি একাধিক শীটে বা একাধিক ফাইলে ডেটা প্রসেস এবং অটোমেট করতে পারেন। VBA (Visual Basic for Applications) ব্যবহার করে আপনি একাধিক শীট বা ফাইলের মধ্যে ডেটা কপি, পেস্ট, ম্যানিপুলেট এবং ফর্ম্যাট করতে পারেন।
Multiple Worksheets এর সাথে কাজ করা
একই Workbook এর মধ্যে একাধিক Worksheet এর সাথে কাজ করার জন্য আপনাকে VBA কোডের মাধ্যমে সেই শীটগুলো অ্যাক্সেস করতে হবে এবং প্রয়োজনীয় কার্যক্রম সম্পন্ন করতে হবে।
Worksheet অ্যাক্সেস এবং কাজ করা
প্রথমেই আপনাকে সঠিক Worksheet নির্বাচন করতে হবে এবং তারপর সেখানে কাজ করতে হবে। নিচে কিছু মৌলিক কাজের উদাহরণ দেওয়া হলো।
১. Worksheet Selection এবং Manipulation
Sub WorkWithMultipleSheets()
' শীট 1 এ ডেটা লিখতে
Sheets("Sheet1").Range("A1").Value = "Hello, World!"
' শীট 2 থেকে ডেটা কপি করে শীট 1 এর A2 সেলে পেস্ট করতে
Sheets("Sheet2").Range("A1").Copy
Sheets("Sheet1").Range("A2").PasteSpecial Paste:=xlPasteValues
End Sub
ব্যাখ্যা:
- Sheets("Sheet1"): "Sheet1" শীটটিকে সিলেক্ট এবং তার উপর কাজ করতে নির্দেশ দেয়।
- Range("A1").Value: নির্দিষ্ট সেলের মান সেট বা রিড করা।
- Copy and PasteSpecial: একটি শীট থেকে অন্য শীটে ডেটা কপি করা এবং শুধুমাত্র মান পেস্ট করা।
২. Loop ব্যবহার করে একাধিক Worksheet এ কাজ করা
যদি আপনি একাধিক শীটে একই কাজ করতে চান, তবে For Each Loop ব্যবহার করে সেটি অটোমেট করা যায়।
Sub LoopThroughSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
ws.Range("A1").Value = "Updated"
Next ws
End Sub
এটি Workbook এর সব শীটে A1 সেলে "Updated" লিখবে।
৩. শীটের নাম এবং শর্ত অনুযায়ী কাজ করা
Sub ConditionalSheetWork()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
If ws.Name = "Sales" Then
ws.Range("B2").Value = "Sales Data"
End If
Next ws
End Sub
এটি শুধুমাত্র "Sales" নামে শীটে কাজ করবে এবং B2 সেলে "Sales Data" লিখবে।
Multiple Workbooks এর সাথে কাজ করা
একাধিক Workbook এর সাথে কাজ করা আরও জটিল হতে পারে, কারণ আপনাকে একাধিক ফাইল খোলার, তথ্য এক্সট্র্যাক্ট করার, বা ডেটা এক Workbook থেকে অন্য Workbook এ স্থানান্তর করার প্রয়োজন হতে পারে। VBA এর মাধ্যমে এই কাজগুলো খুব সহজেই অটোমেট করা যায়।
১. Workbook ওপেন এবং ক্লোজ করা
Sub OpenCloseWorkbook()
' একটি নতুন Workbook খুলুন
Workbooks.Open "C:\path\to\your\workbook.xlsx"
' কাজ শেষে Workbook বন্ধ করুন
Workbooks("workbook.xlsx").Close SaveChanges:=True
End Sub
ব্যাখ্যা:
- Workbooks.Open: নির্দিষ্ট ফাইল পাথ দিয়ে একটি Workbook খুলবে।
- Workbooks("workbook.xlsx").Close: নির্দিষ্ট Workbook বন্ধ করবে এবং পরিবর্তন সংরক্ষণ করবে।
২. এক Workbook থেকে অন্য Workbook এ ডেটা কপি করা
Sub CopyDataBetweenWorkbooks()
' দুটি Workbook এর কাজ
Dim sourceWB As Workbook
Dim targetWB As Workbook
' সেলেক্ট করা Workbook গুলি
Set sourceWB = Workbooks.Open("C:\path\to\source.xlsx")
Set targetWB = Workbooks.Open("C:\path\to\target.xlsx")
' Source Workbook থেকে Data কপি করে Target Workbook এ পেস্ট করা
sourceWB.Sheets("Sheet1").Range("A1:B10").Copy
targetWB.Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues
' কাজ শেষে Workbooks বন্ধ করা
sourceWB.Close
targetWB.Close SaveChanges:=True
End Sub
এটি একটি Workbook থেকে ডেটা কপি করে অন্য Workbook এ পেস্ট করবে। পরবর্তীতে উভয় Workbook বন্ধ করে দেবে।
৩. একাধিক Workbook এর মধ্যে Loop ব্যবহার করে কাজ করা
Sub LoopThroughMultipleWorkbooks()
Dim wb As Workbook
Dim filePath As String
' Workbook এর ফাইল পাথ সন্নিবেশ করুন
filePath = "C:\path\to\your\folder\"
' একটি ফোল্ডারে থাকা সমস্ত Workbooks এর মধ্যে Loop করা
fileName = Dir(filePath & "*.xlsx")
Do While fileName <> ""
Set wb = Workbooks.Open(filePath & fileName)
wb.Sheets(1).Range("A1").Value = "Updated"
wb.Close SaveChanges:=True
fileName = Dir
Loop
End Sub
এই কোডটি একটি নির্দিষ্ট ফোল্ডারে থাকা সব .xlsx ফাইলের মধ্যে লুপ করবে এবং তাদের প্রথম শীটে A1 সেল আপডেট করবে।
সারাংশ
Multiple Worksheets এবং Multiple Workbooks এর সাথে কাজ করার মাধ্যমে এক্সেল ম্যাক্রো ব্যবহারকারীরা বড় পরিসরে ডেটা ম্যানিপুলেশন এবং অটোমেশন করতে পারেন। VBA এর সাহায্যে একাধিক শীট বা ফাইলের মধ্যে ডেটা কপি, পেস্ট, ম্যানিপুলেট এবং ফরম্যাট করা সম্ভব। এছাড়া, Loop এবং Conditional Structures ব্যবহার করে একাধিক শীট বা ফাইলের মধ্যে একযোগে কাজ করা আরও সহজ হয়ে ওঠে। একাধিক ফাইলের সঙ্গে কাজ করার সময় সঠিকভাবে ফাইল ওপেন, ডেটা কপি এবং ফাইল ক্লোজ করার প্রক্রিয়া ম্যানেজ করা গুরুত্বপূর্ণ।
Read more